#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QSequentialAnimationGroup>
#include <QGraphicsScene>
#include <QGraphicsPixmapItem>
#include <QTimer>
#include <QVector>
#include <QPointF>
#include <QGraphicsOpacityEffect>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

protected:
    void resizeEvent(QResizeEvent *event) override;

private slots:
    void on_startButton_clicked();

private:
    Ui::MainWindow *ui;

    // 文字动画相关
    QSequentialAnimationGroup *textAnimationGroup;  // 文字动画组
    QVector<QGraphicsOpacityEffect*> charEffects;   // 字符透明度效果

    // 粒子效果相关
    QGraphicsScene *particleScene;     // 粒子场景
    QGraphicsView *particleView;       // 粒子视图
    QTimer *particleTimer;             // 粒子定时器
    QVector<QGraphicsPixmapItem*> particles;  // 粒子项
    QVector<QPointF> particleDirections;      // 粒子移动方向
    QVector<QPointF> particleOffsets;         // 粒子相对标签的偏移

    void setupTextAnimation();         // 设置文字动画
    void setupParticleEffects();       // 设置粒子效果
    void updateParticles();            // 更新粒子位置
    void positionParticleView();       // 定位粒子视图
    void clearParticles();             // 清理粒子资源
};
#endif // MAINWINDOW_H
